package 链表;

public class 合并k个升序链表 {
    public class ListNode {
        int val;
        ListNode next;
        ListNode() {}
        ListNode(int val) { this.val = val; }
        ListNode(int val, ListNode next) { this.val = val; this.next = next; }
  }
    ListNode list=null;
    public ListNode mergeKLists(ListNode[] lists) {
        if (lists.length==0){
            return list;
        }
        for (int i=0;i<lists.length;i++){
             list=mergeKList(list,lists[i]);
        }
        return list;
    }
    public ListNode mergeKList(ListNode l1,ListNode l2){
        if (l1==null){
            return l2;
        }
        if (l2==null){
            return l1;
        }
        if (l1.val<l2.val){
            l1.next=mergeKList(l1.next,l2);
            return l1;
        }
        else{
           l2.next=mergeKList(l1,l2.next);
           return l2;
        }
    }
}
